package com.autumn.sms.service.services.dto.output;

import java.util.ArrayList;
import java.util.List;

import javax.validation.Valid;

import com.autumn.application.dto.output.DefaultGmtModifiedOutput;
import com.autumn.validation.constraints.NotNullOrBlank;

import io.swagger.annotations.ApiModelProperty;

/**
 *抽象模板输出
 * @author JuWa ▪ Zhang
 * @date 2018年1月16日
 * @since jdk 1.8
 * @param <TParam>
 */
public class AbstractSmsTemplateOutput<TParam> extends DefaultGmtModifiedOutput{

	/**
	 * 
	 */
	private static final long serialVersionUID = 5649591016511720472L;
	@ApiModelProperty(value = "模板代码")
	@NotNullOrBlank(message = "模板代码不能为空或空字符串")
	private String code;
	@ApiModelProperty(value = "模板名称")
	@NotNullOrBlank(message = "模板名称不能为空或空字符串")
	private String name;
	@ApiModelProperty(value = "模板状态")
	private Integer status;
	@ApiModelProperty(value = "备注")
	private String remark;

	@ApiModelProperty(value = "模板参数集合")
	@Valid
	private List<TParam> parameters;

	public AbstractSmsTemplateOutput() {
		this.parameters = new ArrayList<>();
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public List<TParam> getParameters() {
		return parameters;
	}

	public void setParameters(List<TParam> parameters) {
		this.parameters = parameters;
	}
}
